package com.guanzhi.validation.service;

import com.guanzhi.validation.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.BindException;
import org.springframework.validation.Validator;

/**
 * Spring6
 * <p> Package: com.guanzhi.validation.service </p>
 * <p> File: ValidatorFramework.java </p>
 * <p> Description:  (使用注解形式 实现validation数据校验 校验器 Spring提供)</p>
 * <p> Date: 2024/9/21 18:27</p>
 *
 * @author LiKai
 * @version 1.0 （代码版本）
 * @email <a href="mailto:Likai55634@aliyun.com">LiKai</a>（邮箱）
 * @date 2024/9/21 18:27
 * @since jdk1.8（jdk版本）
 */
public class ValidatorFramework {

    private final Validator validator;

    public ValidatorFramework(Validator validator) {
        this.validator = validator;
    }

    public boolean validatorFramework(User user) {
        // 创建一个 BindException 对象，用于处理用户信息绑定时的错误情况
        BindException bindException=new BindException(user,user.getName());
        // 调用 Validator 的 validate 方法对 User 对象进行校验
        validator.validate(user,bindException);
        // 判断是否有错误
        return bindException.hasErrors();
    }
}
